import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class ProstyController {

	ProstyModel model;
	ProstyView widok;
	Table stol;
	int iloscLudzi;
	int iloscBotow;
	int aktualnyGracz=0;
	boolean flaga = true;
	int iloscGraczy=0;
	
	public ProstyController(ProstyModel model, ProstyView widok)
	{
		this.model=model;
		this.widok = widok;
		
		this.widok.panel2.sluchacz1(new LOL1());
		this.widok.panel1.sluchacz2(new LOL3());
		this.widok.panel1.sluchaczDalej(new LOLDalej());
		this.widok.panel1.sluchaczWymien(new LOLWymien());		
		this.widok.panel3.sluchaczPanel3(new LOLKoniec());
		
	}

	class LOL1 implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			boolean lol;
			lol = widok.panel2.metoda2();
			if(lol==true)
			{
				widok.usuwanko();	
				System.out.println(widok.panel1.oddajCz());
				System.out.println(widok.panel1.oddajBo());
				iloscGraczy=widok.panel1.gracze[0]+widok.panel1.gracze[1];
				iloscLudzi=widok.panel1.gracze[0];
				iloscBotow=widok.panel1.gracze[1];
				stol=new Table(widok.panel1.gracze[0],widok.panel1.gracze[1]);
				stol.pierwszeRozdanie();
				if(iloscLudzi!=0)
				{
					widok.panel1.lego=stol.przekazWynik(0);				
					aktualnyGracz+=1;
				}	
				widok.usuwanko2();
			}
		}
	}
	
	class LOL3 implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			if(iloscLudzi==aktualnyGracz)
			{
				if(flaga==true){
					aktualnyGracz=0;
					widok.panel1.lego=stol.przekazWynik(aktualnyGracz);
					widok.usuwanko3();
					widok.usuwanko4();
					flaga=false;
				}
				else
				{
					widok.pobierzDoPanel3(iloscGraczy);
					widok.koniecParti();
					for(int i=0;i<iloscLudzi;i++)
						widok.cosF(stol.przekazWynik(i));
					for(int i=0;i<iloscBotow;i++)
						widok.cosF(stol.przekazWynikBot(i));
					
				}
			}
			else
			{	
				widok.panel1.lego=stol.przekazWynik(aktualnyGracz);				
				widok.usuwanko3();
				aktualnyGracz++;
			}
		}
	}
	
	class LOLWymien implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			stol.wymienKarty(widok.panel1.zwracaZaznaczone(), aktualnyGracz);
			widok.wymien();
			widok.panel1.lego=stol.przekazWynik(aktualnyGracz);
			widok.usuwanko3();
		}
	}
	
	class LOLKoniec implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			System.exit(0);
		}
	}
	
	
	class LOLDalej implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			aktualnyGracz++;
			if(iloscLudzi==aktualnyGracz){
				stol.fazaWymianyDlaBota();
				aktualnyGracz=0;
				widok.panel1.lego=stol.przekazWynik(aktualnyGracz);
				widok.usuwanko3();
				widok.poWymianie();
			}
			else{
				widok.nastWymienia();
				widok.panel1.lego=stol.przekazWynik(aktualnyGracz);				
				widok.usuwanko3();
			}
		}
	}
	
	
}